package testPackage.testPackage;

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

/**
 * step by step 02 TestNG注释
 * 批注：是提供有关类、接口或方法的其他信息的标签或元数据。
 * TsetNG利用这些注释来提供一些有助于创建健壮的测试框架的功能。
 * @Test  -将方法标记为测试
 * 重要属性：
 * 1、description -为测试方法提供描述
 * 2、dataProvider -指定测试数据提供者的名称
 * 3、priority-确定测试方法的优先级 默认优先级从0开始
 * 4、enabled -指定给定的测试方法是否将随类等一起运行
 * 5、groups -指定测试方法所属的组
 * 6、dependsOnMethods -指定该测试方法所依赖的方法
 * 7、dependsOnGroups -指定在其上的测试方法所依赖的组
 * 8、alwaysRun -设置为True时，即使相关方法失败，测试方法也会运行
 * 9、timeOut -用于指定测试的超时值（以毫秒为单位）
 * @BeforeSuite - 带注释的方法仅在该套件中的所有测试运行之前运行一次
 * @AfterSuite -带注释的方法仅在该套件中的所有测试运行之后运行一次
 * @BeforeClass -带注释的方法仅在调用当前类中的第一个测试方法之前运行一次
 * @AfterClass -带注释的方法仅在调用当前类中的所有测试方法之后运行一次
 * @BeforeTest -带注释的方法将在运行任何<test>标记内的类的测试方法之前运行
 * @AfterTest -带注释的方法将在属于<test>标记内的类的所有测试方法运行之后运行
 * @Parameter -用于将参数传递到测试脚本 @Parameter标记值可以通过testng.xml文本传递
 * @Listeners -用于执行一些操作，通常，TestNG侦听器用于配置报告和日志记录
 * @Factory -有助于动态执行测试用例
 */
public class Testng02 {
    @Test(description = "test")
    public void sampleTest(){
        System.out.println("Hi ArtOfTesting here!");
    }
    @DataProvider( name = "yixiaobai")
   public Object[][] dataProviderMethod1(){
        return new Object[][]{{"kuldeep","rana"},{"k1","r2"},{"k2","r2"}};
    }
    @Test ( dataProvider = "yixiaobai")
    public void sampleTest(String str1,String str2){
        System.out.println(str1 + " "+ str2);
    }
}
